<?

/*
*
*   Excalibur Content Management System
*   Copyright © 2008 Egor "Sontan" Kuryanovich
*
*   Based on Explay Engine v2.0 by Golovdinov Alexander
*
*   Official site: www.excms.ru
*   Contact e-mail: support@excms.ru
*
*   GNU General Public License original source:
*   http://www.gnu.org/licenses/gpl-3.0.html
*
*/


//Если есть активная сессия
if (isset($_COOKIE['login']) && isset ($_COOKIE['pass']) && $_COOKIE['login'] != "false" && $_COOKIE['pass'] != "false") 
{
	// Экранируем данные сессии
	$GLOBAL_USER_LOGIN = addslashes($_COOKIE['login']);
	$GLOBAL_USER_PASS = addslashes($_COOKIE['pass']);

	// Если данные существуют то пытаемся загрузить информацию о пользователе
	if ($GLOBAL_USER_LOGIN != "" && $GLOBAL_USER_PASS != "")
	{
		$S_USER = $db->query ('SELECT * FROM '.DB_PEREFIX."_users WHERE user_login = '$GLOBAL_USER_LOGIN' AND user_password = '$GLOBAL_USER_PASS'");
	}
	
	// Если запрос удачен то загружаем информацию о голосующем в $GLOBAL_USER
	if ($db->num_rows ($S_USER) == 1) 
	{
		$GLOBAL_USER = $db->fetch_array ($S_USER);
	}
}


// Для продолжения пользователь должен быть авторизирован и иметь карму больше -5
if (!is_registered() ) 
{
	alert("Ошибка при добавлении изоображения! Авторизируйтесь.");
	exit;
}
if ( my_karma() < "-5")
{
	alert("Ошибка при добавлении изоображения! Ваша кармадолжна быть больше -5.");
	exit;
}

// Устанавливаем ширину по умолчанию
$width = '';
$width_ = 400;

// Если прислано то устанавливаем значение ширины
if (intval ($_POST['width']) != '' && intval ($_POST['width']) != 0 && intval ($_POST['width']) <= 400) 
{ 
	$width = ' width="'.intval ($_POST['width']).'"'; 
	$width_ = intval ($_POST['width']); 
}

// Устанавливаем выравнивание картинки
if ($_POST['align'] == 'left') 
	$align = ' align="left"';
elseif ($_POST['align'] == "right") 
	$align = ' align="right"';
elseif ($_POST['align'] == "center") 
	$align = ' align="center"';
else 
	$align = '';

// Устанавливаем описание картинки
(strip_tags ($_POST['alt']) != '')	? $alt = ' alt="'.strip_tags ($_POST['alt']).'"' 
									: $alt = '';

$prefix = time().'_';

if ($_FILES['image']['name'] != "") 
{
	if (eregi('[A-Za-z0-9]\.(jpeg|jpg|gif|png|bmp|JPEG|JPG|GIF|PNG|BMP)', $_FILES['image']['name'])) 
	{
		if (copy($_FILES['image']['tmp_name'], "include/cache/".$prefix.$_FILES['image']['name'])) 
		{
			if (save_image ("include/cache/".$prefix.$_FILES['image']['name'], $width_))
			{
				echo '<script type="text/javascript">
							parent.document.record.big_text.value = parent.document.record.big_text.value 
							+ \'<img src="'.return_name ($_FILES['image']['name']).'"'.$width.$alt.$align.' />\'; 
							parent.insert_text_img_close();
						</script>';
			}
			else 
				alert("Ошибка при добавлении изоображения!");
		}
		else alert ("Ошибка при добавлении изоображения!");
	}
	else alert ("Файл не является изоображением!");
}

function alert ($text) 
{
	print '<script type="text/javascript">alert ("'.$text.'");</script>';
}

function save_image ($src, $width_) 
{
	global $GLOBAL_USER, $prefix;
	
	if (!file_exists($src) || $src == "") return false;
	
	if(eregi('[A-Za-z0-9]\.(jpeg|jpg|JPEG|JPG)', $src)) 
	{
		$thumbbase = imagecreatefromjpeg($src);
		$type = "JPEG";
		$name = "images/articles/".$prefix.$GLOBAL_USER['user_id'].".jpg";
	}
	elseif(eregi('[A-Za-z0-9]\.(gif|GIF)', $src)) 
	{
		$thumbbase = imagecreatefromgif($src);
		$type = "GIF";
		$name = "images/articles/".$prefix.$GLOBAL_USER['user_id'].".gif";
	}
	elseif(eregi('[A-Za-z0-9]\.(png|PNG)', $src)) 
	{
		$thumbbase = imagecreatefrompng($src);
		$type = "PNG";
		$name = "images/articles/".$prefix.$GLOBAL_USER['user_id'].".png";
	}
	elseif(eregi('[A-Za-z0-9]\.(bmp|wbmp|BMP|wbmp)', $src)) 
	{
		$thumbbase = imagecreatefromwbmp($src);
		$type = "GIF";
		$name = "images/articles/".$prefix.$GLOBAL_USER['user_id'].".gif";
	}
	else return false;
	
	$width = imagesx($thumbbase);
	$height = imagesy($thumbbase);
	
	if ($width > $width_ || $height > 480) 
	{
		$k = max($width/$width_, $height/640);
		$new_width = intval($width / $k);
		$new_height = intval($height / $k);
	}
	else 
	{
		$new_width = $width;
		$new_height = $height;
	}
	
	$thumb = imagecreatetruecolor ($new_width, $new_height);
	imagecopyresampled($thumb, $thumbbase, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
	if ($type == "JPEG") 
	{
		if (imagejpeg($thumb, $name, 70)) 
		{
			imagedestroy($thumb);
			imagedestroy($thumbbase);
			@unlink ($src);
			return true;
		}
		else return false;
	}
	elseif ($type == "GIF") 
	{
		if (imagegif ($thumb, $name)) 
		{
			imagedestroy($thumb);
			imagedestroy($thumbbase);
			@unlink ($src);
			return true;
		}
		else return false;
	}
	elseif ($type == "PNG") 
	{
		if (imagepng ($thumb, $name)) 
		{
			imagedestroy($thumb);
			imagedestroy($thumbbase);
			@unlink ($src);
			return true;
		}
		else return false;
	}
	else return false;
}

function return_name ($src) 
{
	global $GLOBAL_USER, $prefix;
	
	if(eregi('[A-Za-z0-9]\.(jpeg|jpg|JPEG|JPG)', $src)) 
	{
		return "/images/articles/".$prefix.$GLOBAL_USER['user_id'].".jpg";
	}
	elseif(eregi('[A-Za-z0-9]\.(gif|GIF)', $src)) 
	{
		return "/images/articles/".$prefix.$GLOBAL_USER['user_id'].".gif";
	}
	elseif(eregi('[A-Za-z0-9]\.(png|PNG)', $src)) 
	{
		return "/images/articles/".$prefix.$GLOBAL_USER['user_id'].".png";
	}
	elseif(eregi('[A-Za-z0-9]\.(bmp|wbmp|BMP|wbmp)', $src)) 
	{
		return "/images/articles/".$prefix.$GLOBAL_USER['user_id'].".gif";
	}
	else return false;
}

exit;

